package encheres.presentation.controleur;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import org.omg.CORBA.ORB;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CosNaming.NameComponent;
import org.omg.CosNaming.NamingContext;
import org.omg.CosNaming.NamingContextHelper;
import org.omg.CosNaming.NamingContextPackage.CannotProceed;
import org.omg.CosNaming.NamingContextPackage.NotFound;

import encheres.manager.corba.C_Categorie;
import encheres.manager.corba.I_CategorieHelper;
import encheres.manager.corba.I_CategorieOperations;
import encheres.manager.ws.IServiceEnchere;
import encheres.presentation.ui.CorbaManager;

public class ProposerProduit {

	/**
	 * Créé une arborescence des catégories depuis le noeud racine de l'arbre.
	 * @param top
	 */
	public void createNodes(DefaultMutableTreeNode top) {
        DefaultMutableTreeNode categorieNode = null;
	    DefaultMutableTreeNode sousCategorieNode = null;
	    
	    C_Categorie[] listCategoriesMeres = CorbaManager.getManagerCategorie().listerCategoriesMeres();
	    for(C_Categorie categorieMere : listCategoriesMeres){
	    	categorieNode = new DefaultMutableTreeNode(categorieMere.id+"-"+categorieMere.nom);
	    	top.add(categorieNode);
	    	C_Categorie[] listCategoriesFilles = CorbaManager.getManagerCategorie().listerSousCategories(categorieMere.id);
	    	for(C_Categorie categorieFille : listCategoriesFilles) {
	    		sousCategorieNode = new DefaultMutableTreeNode(categorieFille.id+"-"+categorieFille.nom);
	    		categorieNode.add(sousCategorieNode);
	    	}
	    }
	}
	
	/**
	 * @param idCategorie
	 * @param libelleProduit
	 * @param descriptifProduit
	 * @param dateEcheance
	 * @param prixDepart
	 * @param prixAcceptation
	 * @return
	 * @throws MalformedURLException
	 */
	public int creerNouveauProduit(int idCategorie, String libelleProduit,
			String descriptifProduit, String dateEcheance, float prixDepart,
			float prixAcceptation, int idSession) throws MalformedURLException {
		Service service;
		URL wsdLocation = new URL("http://localhost:8080/ws/ServiceEnchere?wsdl");
		QName serviceQName = new QName("http://ws.manager.encheres/", "ServiceEnchereImplService");
		service = Service.create(wsdLocation, serviceQName);
		IServiceEnchere serviceProduit = service.getPort(IServiceEnchere.class);
		int resultat = serviceProduit.creerProduit(libelleProduit, idCategorie, idSession, descriptifProduit, dateEcheance, prixDepart, prixAcceptation);
		return resultat;
	}
}
